@@ -17,7 +17,7 @@ class AdminPanelController < ApplicationController |
||
| 17 | 17 |
end |
| 18 | 18 |
|
| 19 | 19 |
def contact_messages |
| 20 |
- @contact_messages = ContactMessage.all |
|
| 20 |
+ @contact_messages = ContactMessage.order('created_at DESC').all
|
|
| 21 | 21 |
end |
| 22 | 22 |
|
| 23 | 23 |
def users |
@@ -1,5 +1,5 @@ |
||
| 1 | 1 |
class ContactMessagesController < ApplicationController |
| 2 |
- before_action :set_contact_message, only: [:show, :edit, :update, :destroy] |
|
| 2 |
+ before_action :set_contact_message, only: [:show, :edit, :update, :destroy, :unread, :readed] |
|
| 3 | 3 |
|
| 4 | 4 |
# GET /contact_messages |
| 5 | 5 |
# GET /contact_messages.json |
@@ -26,6 +26,37 @@ class ContactMessagesController < ApplicationController |
||
| 26 | 26 |
end |
| 27 | 27 |
end |
| 28 | 28 |
|
| 29 |
+ def show |
|
| 30 |
+ @contact_message.unread = false |
|
| 31 |
+ @contact_message.save |
|
| 32 |
+ end |
|
| 33 |
+ |
|
| 34 |
+ def readed |
|
| 35 |
+ @contact_message.unread = false |
|
| 36 |
+ respond_to do |format| |
|
| 37 |
+ if @contact_message.save |
|
| 38 |
+ format.html { redirect_to admin_contact_messages_path, notice: 'Contact message marked as readed.' }
|
|
| 39 |
+ format.json { render action: 'show', status: :created, location: @contact_message }
|
|
| 40 |
+ else |
|
| 41 |
+ format.html { render action: 'new' }
|
|
| 42 |
+ format.json { render json: @contact_message.errors, status: :unprocessable_entity }
|
|
| 43 |
+ end |
|
| 44 |
+ end |
|
| 45 |
+ end |
|
| 46 |
+ |
|
| 47 |
+ def unread |
|
| 48 |
+ @contact_message.unread = true |
|
| 49 |
+ respond_to do |format| |
|
| 50 |
+ if @contact_message.save |
|
| 51 |
+ format.html { redirect_to admin_contact_messages_path, notice: 'Contact message marked as unread.' }
|
|
| 52 |
+ format.json { render action: 'show', status: :created, location: @contact_message }
|
|
| 53 |
+ else |
|
| 54 |
+ format.html { render action: 'new' }
|
|
| 55 |
+ format.json { render json: @contact_message.errors, status: :unprocessable_entity }
|
|
| 56 |
+ end |
|
| 57 |
+ end |
|
| 58 |
+ end |
|
| 59 |
+ |
|
| 29 | 60 |
# PATCH/PUT /contact_messages/1 |
| 30 | 61 |
# PATCH/PUT /contact_messages/1.json |
| 31 | 62 |
def update |
@@ -8,19 +8,32 @@ |
||
| 8 | 8 |
<% @contact_messages.each do |msg| %> |
| 9 | 9 |
<div class="media thumbnail" style="padding: 10px; padding-bottom: 5px;"> |
| 10 | 10 |
<div class="media-body pull-left"> |
| 11 |
- <h3 class="media-heading" style="margin-bottom: 0px;"><%= link_to msg.title, contact_message_path(msg) %> |
|
| 12 |
- <%= ('<span class="badge badge-warning" style="margin-top: -11px">' + (t "admin_panel.new") + '</span>').html_safe if msg.unread %></h3>
|
|
| 13 |
- <p style="margin-top: -5px;"><small><%= t "blog.by" %> |
|
| 11 |
+ <h4 class="media-heading" style="margin-bottom: 0px;"> |
|
| 12 |
+ <%= ('<span class="badge badge-warning" style="margin-top: -11px">' + (t "admin_panel.new") + '</span>').html_safe if msg.unread %>
|
|
| 13 |
+ <%= link_to msg.title, contact_message_path(msg) %> |
|
| 14 |
+ |
|
| 15 |
+ <span style="margin-top: -5px;"><small><%= t "contact.by" %> |
|
| 14 | 16 |
<% if msg.user != nil %> |
| 15 | 17 |
<%= msg.user.full_name %> |
| 16 | 18 |
<% else %> |
| 17 | 19 |
<%= msg.email %> |
| 18 | 20 |
<% end %> |
| 19 | 21 |
, <%= time_ago_in_words(msg.created_at) %> <%= t "blog.ago" %> |
| 20 |
- </small></p> |
|
| 21 |
- <p><%= msg.content %></p> |
|
| 22 |
- </div> |
|
| 23 |
- </div> |
|
| 22 |
+ </small></span> |
|
| 23 |
+ </h4> |
|
| 24 |
+ <p style="margin-top: 15px;"><%= truncate( msg.content, length: 120, omission: '...') %></p> |
|
| 25 |
+ </div> |
|
| 26 |
+ <div class="pull-right"> |
|
| 27 |
+ <div class="btn-group btn-group-vertical"> |
|
| 28 |
+ <% if msg.unread %> |
|
| 29 |
+ <%= link_to '<i class="icon-eye-open"></i>'.html_safe, mark_contact_message_as_readed_path(msg), :class => 'btn' %> |
|
| 30 |
+ <% else %> |
|
| 31 |
+ <%= link_to '<i class="icon-eye-close"></i>'.html_safe, mark_contact_message_as_unread_path(msg), :class => 'btn' %> |
|
| 32 |
+ <% end %> |
|
| 33 |
+ <%= link_to '<i class="icon-remove"></i>'.html_safe, msg, method: :delete, data: { confirm: 'Are you sure?' }, :class => 'btn btn-danger' %>
|
|
| 34 |
+ </div> |
|
| 35 |
+ </div> |
|
| 36 |
+ </div> |
|
| 24 | 37 |
<% end %> |
| 25 | 38 |
|
| 26 | 39 |
</div> |
@@ -9,9 +9,9 @@ |
||
| 9 | 9 |
<div class="media thumbnail" style="padding: 10px; padding-bottom: 5px;"> |
| 10 | 10 |
<span class="pull-left"> |
| 11 | 11 |
<% if user.avatar.file != nil %> |
| 12 |
- <%= image_tag user.avatar.thumb.to_s %> |
|
| 12 |
+ <%= image_tag user.avatar.thumb.to_s, :class => 'img-circle' %> |
|
| 13 | 13 |
<% else %> |
| 14 |
- <%= image_tag "user.png", size: "50x50" %> |
|
| 14 |
+ <%= image_tag "user.png", size: "50x50", :class => 'img-circle' %> |
|
| 15 | 15 |
<% end %> |
| 16 | 16 |
</span> |
| 17 | 17 |
<div class="media-body pull-left" style="min-width: 180px;"> |
@@ -242,4 +242,5 @@ en: |
||
| 242 | 242 |
title: Message Title |
| 243 | 243 |
message: Message |
| 244 | 244 |
send: Send |
| 245 |
- error: Please correct the following errors |
|
| 245 |
+ error: Please correct the following errors |
|
| 246 |
+ by: by |
@@ -244,4 +244,5 @@ pt-BR: |
||
| 244 | 244 |
title: Assunto |
| 245 | 245 |
message: Mensagem |
| 246 | 246 |
send: Enviar |
| 247 |
- error: Favor corrigir os erros abaixo |
|
| 247 |
+ error: Favor corrigir os erros abaixo |
|
| 248 |
+ by: por |
@@ -8,6 +8,8 @@ RailsWebsiteTemplate::Application.routes.draw do |
||
| 8 | 8 |
get "admin" => "admin_panel#index" |
| 9 | 9 |
get "admin/posts" => "admin_panel#posts", :as => :admin_posts |
| 10 | 10 |
get "admin/contact_messages" => "admin_panel#contact_messages", :as => :admin_contact_messages |
| 11 |
+ get "contact_message/:id/mark_contact_message_as_readed" => "contact_messages#readed", :as => :mark_contact_message_as_readed |
|
| 12 |
+ get "contact_message/:id/mark_contact_message_as_unread" => "contact_messages#unread", :as => :mark_contact_message_as_unread |
|
| 11 | 13 |
get "admin/users" => "admin_panel#users", :as => :admin_users |
| 12 | 14 |
get "admin/config" => "admin_panel#site_config", :as => :admin_config |
| 13 | 15 |
post "admin/config/update" => "admin_panel#site_config_update", :as => :config_update |